﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace QuanLyBanHang_NewApp.Entity
{
    public class PhieuNhap
    {
        private long maPN, maNCC;
        private DateTime ngayLap;
        private double tongGia;
        private List<SanPham> chitietPN;

        public PhieuNhap()
        {
            maPN = 0;
            maNCC = 0;
            ngayLap = DateTime.Now;
            tongGia = 0;
            chitietPN = new List<SanPham>();
        }

        public void addToPN(SanPham sp, int soluong)
        {
            foreach (SanPham sanpham in chitietPN)
            {
                //Nếu mã sản phẩm thêm vào trùng với mã của 1 sản phẩm nào đó trong list thì tăng số lượng của sản phẩm trong list
                if (sanpham.getAttribute(0).Equals(sp.getAttribute(0)))
                {
                    sanpham.setCount(int.Parse(sanpham.getAttribute(4)) + soluong);
                    tongGia += double.Parse(sp.getAttribute(3)) * soluong;
                    return;
                }
            }
            sp.setCount(soluong);
            chitietPN.Add(sp);
            tongGia += double.Parse(sp.getAttribute(3)) * soluong;
        }

        public double getPricePN()
        {            
            return tongGia;
        }

        public void setNCC(long mancc)
        {
            maNCC = mancc;
        }

        public void deleteItem()
        {
            tongGia = 0;
            if (chitietPN.Count > 0)
            {

                foreach (SanPham sp in chitietPN)
                {
                    tongGia += long.Parse(sp.getAttribute(3)) * long.Parse(sp.getAttribute(4));
                }

            }
        }

        public string getAttribute(string index)
        {
            switch (index)
            {
                case "mapn": return maPN.ToString();
                case "mancc": return maNCC.ToString();
                case "ngaylap": return ngayLap.ToShortDateString();
                case "tonggia": return tongGia.ToString();                
                default: return "!error";
            }

        }

        public List<SanPham> getDetail()
        {
            return chitietPN;
        }
    }
}
